#pragma once

#include "../Math/Vector2.h"
#include "../Math/Matrix2.h"

class CStandardICA
{
public:
	friend class CStandardICALearn;

public:
	CStandardICA() = delete;

	CStandardICA(int dimension);

public:
	virtual bool Save(const char * szFileName = nullptr);

	virtual bool Load(const char * szFileName = nullptr);

	virtual Vector2 Execute(const Vector2 & InputData);

protected:
	int m_Dimension;

	Matrix2  m_X;

	Matrix2  m_W;

	Matrix2  m_Y;
};